class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型
     */
    /*
    dp[i]表示偷前i间房的最大金额数
    dp[i]=max(nums[i]+dp[i-2],dp[i-1]); 偷第i间的，不偷第i间也就是dp[i]=dp[i-1]
    */
    int rob(vector<int>& nums) {
        // write code here
        int n=nums.size();
        vector<int>dp(n,0);
        if(n==0)
            return 0;
        if(n==1)
            return nums[0];
        dp[0]=nums[0];
        dp[1]=max(nums[1],nums[0]);
        for(int i=2;i<n;i++)
        {
            dp[i]=max(nums[i]+dp[i-2],dp[i-1]);
        }
        return dp[n-1];
    }
};